package org.abettor.angleworm.router;

import java.net.InetSocketAddress;

/**
 * 能够为一个客户端提供服务的路由服务器
 * @author <a href="http://www.abettor.org/" target="_blank">abettor</a>
 *
 */
public interface RouterServer extends Runnable
{
	/**
	 * 获取直接客户端地址
	 */
	public InetSocketAddress getClient();

	/**
	 * 为来自于特定客户端的一个路由请求创建一个通信隧道服务器
	 * @param dest 目的地址
	 * @exception RouteException
	 */
	public TunnelServer createTunnelServer(InetSocketAddress dest) throws RouteException;

	/**
	 * 停止路由服务并销毁路由服务器
	 */
	public void dispose();
}
